1.6 numpy缺失值的处理
缺失值是没有任何值的空元素,如导入excel文件后,如有单元格没有任何值,则会显示NaN或NaT(缺失时间),有numpy中也可以通过np.nan生成缺失值
如果要判断数组中是滞有缺失值,则使用np.isnan()函数,将返回由布尔值组成的数组,还可以给缺失值填充指定的值
1.6.1 缺失值的写入
import numpy as np
arr=np.array([ 1,2,np.nan,4 ])
print (arr)
返回:
[ 1. 2. nan 4.] #数据的元素变成了浮点型,原来是整数
1.6.1 判断数据是否存在缺失值
import numpy as np
arr=np.array([ 1,2,np.nan,4 ])
print (np.isnan(arr))
返回:
[False False True False]
1.6.2将缺失值填充为指定值
import numpy as np
arr=np.array([ 1,2,np.nan,4 ])
arr[np.isnan(arr)]=999
arr.astype('i2') #默认返回值为浮点型,此次指定返回值为长整型
print (arr)
返回:
[ 1. 2. 999. 4.]
1.6.3 excel文件空单元格写入指定值
import pandas as pd
path=r 'D:\pythonCharm\PyObject\Object\测试\简单测试.xlsx'
df=pd.read_excel (path)
arr=np.array(df[ '入职日期' ]) #写入数组
arr[np.isnan(arr)]=999 #空值指定值
df[ "入职日期" ]=arr #已修改的数据再返回数组显示
print (arr)
返回:
[45231. 999. 44384.]
1.6.4 excel文件导入数据并转换格式
import pandas as pd
path=r "D:\Pyobject2023\object\测试\素材\1.1.4 Numpy数组转换.xlsx"
df=pd.read_excel (path)
arr=pd.to_datetime(df[ '入职日期' ], unit = "D" , origin= '1899-12-30' ) #导入并转换格式
arr[np.isnan(arr)]=999
df[ "入职日期" ]=arr
print (arr)
返回:
0 2023-11-01 00:00:00
1 999
2 2021-07-07 00:00:00
Name: 入职日期, dtype: object